package com.ruoyi.water.utils;

import com.ruoyi.water.domain.MeterLog;
import java.nio.ByteBuffer;

public class MeterLogUtils {
    /**
     * 解析NB通讯卡发送的字节数组（按《NB上位机协议V1.04》和《GB/T 26831》）
     */
    public static MeterLog parse(byte[] dataBytes) {
        MeterLog data = new MeterLog();
        ByteBuffer buffer = ByteBuffer.wrap(dataBytes);

        // 1. 解析表头（示例：跳过前4字节包头）
        buffer.position(4);

        // 2. 解析水表编号（示例：假设第5-14字节是10位BCD码表号）
        byte[] meterNoBytes = new byte[10];
        buffer.get(meterNoBytes);
        //data.setelemSerial(new String(meterNoBytes).trim());

        // 其他字段解析（压力、信号等）...
        return data;
    }

    // 工具方法：BCD码转十进制（示例）
    private static String hexToDecimal(String hex) {
        return new java.math.BigInteger(hex, 16).toString();
    }
}
